﻿package main

import (
    "fmt"
    //"time"
)

func main() {
    pipe := make(chan int, 1000)
    var count int = 0
    for i := 0; i < 1000; i++ {
        go func(n *int, p chan int){
            *n++
            //time.Sleep(time.Millisecond)  // 加点延迟，效果会很明显
            p <- *n
        }(&count, pipe)
    }
    for i := 0; i < 1000; i++ {
        res := <- pipe
        fmt.Println(res)
        //break  // 下面用-race参数执行的时候，放开注释，避免过多的结果打印顶掉打印的竞争信息
    }
}